package com.bbjob.service;

import com.bbjob.dto.Result;
import com.bbjob.model.QueChoice;
import com.bbjob.model.QueOperation;
import com.bbjob.toolutil.DataEntity;

public interface IQuestionBankService {

	/**
	 * 获取私有试卷(根据userid获取相应权限)
	 * 
	 * @param name
	 *            试卷名字过滤
	 * @param userid
	 *            用户id
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getBank(Integer type,String name,Integer difficulty, Integer userid, Integer page, Integer size);

	/**
	 * 获取公共试卷
	 * 
	 * @param name
	 *            试卷名字过滤
	 * @param userid
	 *            用户id
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getFreeBank(Integer type,String name,Integer difficulty, Integer page, Integer size);

	/**
	 * 获取私有选择和判断题(根据userid获取权限)
	 * 
	 * @param name
	 *            题干
	 * @param userid
	 *            用户id
	 * @param type
	 *            1选择2判断
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getChoice(String bankid, String tag, String name, Integer type, Integer userid,
			Integer page, Integer size, Integer bankType);

	/**
	 * 获取共有选择和判断题(根据userid获取权限)
	 * 
	 * @param name
	 *            题干
	 * @param userid
	 *            用户id
	 * @param type
	 *            1选择2判断
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getFreeChoice(String bankid, String tag, String name, Integer type, Integer userid,
			Integer page, Integer size, Integer bankType);

	/**
	 * 获取私有主观操作题(根据userid获取权限)
	 * 
	 * @param name
	 *            题干
	 * @param type
	 *            题目类型
	 * @param userid
	 *            用户id
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getOperation(String tag, String bankid, String name, Integer type, Integer userid,
			Integer page, Integer size);

	/**
	 * 获取共有主观操作题(根据userid获取权限)
	 * 
	 * @param name
	 *            题干
	 * @param type
	 *            题目类型
	 * @param userid
	 *            用户id
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getFreeOperation(String tag, String bankid, String name, Integer type,
			Integer userid, Integer page, Integer size);

	/**
	 * 根据试卷id获取客观题
	 * 
	 * @param choice
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getChoiceByBank(QueChoice choice, Integer page, Integer size);

	/**
	 * 根据客观题主键获取详细信息
	 * 
	 * @param Choiceid
	 * @return
	 */
	public DataEntity getItemByChoiceid(String Choiceid);

	/**
	 * 根据试卷id获取主观题
	 * 
	 * @param operation
	 * @param page
	 * @param size
	 * @return
	 */
	public DataEntity getOperationByBank(QueOperation operation, Integer page, Integer size);

	public Result selectAll(Integer difficultId, Integer userId);

	public DataEntity getChoiceAnalysis(String id);

	public DataEntity getOperationAnalysis(String id);

}
